/**
 * Copyright (c) 2016-2019 九点科技 All rights reserved.
 *
 * http://www.9dyun.cn
 *
 * 版权所有，侵权必究！
 */
package com.dian.modules.inv.entity;

//import com.baomidou.mybatisplus.annotation.TableField;
import com.dian.common.validator.group.AddGroup;
import com.dian.common.validator.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import com.dian.common.entity.BaseEntity;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
/**
 * 出库单明细
 *
 * @author xiaolai
 * @email xiaolai@9dyun.cn
 * @date 2019-06-11 00:16:18
 */
@Data
@TableName("inv_out_line")
public class OutLineEntity extends BaseEntity {
	private static final long serialVersionUID = 1L;


    /**
	 * 出库id
	 */
    @NotNull(message="出库id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long outId;
    /**
     * 仓库Id;来源于Base_Warehouse.id
     */
    @NotNull(message="仓库Id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long warehouseId;
    /**
     * 仓库编码;来源于Base_Warehouse.Warehouse_Code
     */
    @NotBlank(message="仓库编码不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=20,  groups ={AddGroup.class, UpdateGroup.class}, message="仓库编码长度不能超过20个字符")
    private String warehouseCode;
    /**
     * 仓库名称;来源于Base_Warehouse.Warehouse_Name
     */
    @NotBlank(message="仓库名称不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="仓库名称长度不能超过40个字符")
    private String warehouseName;
    /**
	 * 商品id;来源于base_goods.id
	 */
    @NotNull(message="商品id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long goodsId;
    /**
	 * 商品编码;来源于base_goods.goods_code
	 */
    @NotBlank(message="商品编码不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="商品编码长度不能超过40个字符")
    private String goodsCode;
    /**
	 * 商品名称;来源于base_goods.name
	 */
    @NotBlank(message="商品名称不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=200,  groups ={AddGroup.class, UpdateGroup.class}, message="商品名称长度不能超过200个字符")
    private String goodsName;
    /**
	 * 商品型号;来源于base_goods.goods_model
	 */
    @NotBlank(message="商品型号不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=100,  groups ={AddGroup.class, UpdateGroup.class}, message="商品型号长度不能超过100个字符")
    private String goodsModel;
    /**
	 * 商品规格;来源于base_goods.goods_space
	 */
    @NotBlank(message="商品规格不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=100,  groups ={AddGroup.class, UpdateGroup.class}, message="商品规格长度不能超过100个字符")
    private String goodsSpec;
    /**
	 * 商品数量
	 */
    @NotNull(message="商品数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal baseNum;
    /**
	 * 基本单位id;来源于base_uom.id
	 */
    @NotNull(message="基本单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long baseUomId;
    /**
	 * 基本单位;来源于base_uom.name_name
	 */
    @NotBlank(message="基本单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="计量单位长度不能超过40个字符")
    private String baseUomName;
    /**
	 * 商品数量
	 */
    @NotNull(message="商品数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal qtyNum;
    /**
	 * 库存单位id;来源于base_uom.id
	 */
    @NotNull(message="库存单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long qtyUomId;
    /**
	 * 库存单位;来源于base_uom.name_name
	 */
    @NotBlank(message="库存单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="计量单位长度不能超过40个字符")
    private String qtyUomName;
    /**
	 * 商品数量
	 */
    @NotNull(message="商品数量不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal auxNum;
    /**
	 * 辅助单位id;来源于base_uom.id
	 */
    @NotNull(message="辅助单位id不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private Long auxUomId;
    /**
	 * 辅助单位;来源于base_uom.name_name
	 */
    @NotBlank(message="辅助单位不能为空",  groups ={AddGroup.class, UpdateGroup.class})
    @Length(max=40,  groups ={AddGroup.class, UpdateGroup.class}, message="计量单位长度不能超过40个字符")
    private String auxUomName;
    /**
	 * 商品单价
	 */
    @NotNull(message="商品单价不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal goodsPrice;
    /**
	 * 商品挂牌价
	 */
    @NotNull(message="商品挂牌价不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal goodsListPrice;
    /**
	 * 商品金额
	 */
    @NotNull(message="商品金额不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal goodsAmount;
    /**
	 * 商品折扣
	 */
    @NotNull(message="商品折扣不能为空",groups = {AddGroup.class,UpdateGroup.class})
    private BigDecimal goodsDiscount;
    /**
	 * 件换算
	 */
    private BigDecimal converUnit1;
    /**
	 * 片换算
	 */
    private BigDecimal converUnit2;
    /**
     * 订单状态:1-未审核-WAITCHECK;2-已审核-AUDITED-;99-已作废-INVALID
     */
    private Integer outState;
    /**
     * 入库月份;format:yyyy-mm
     */
    private String outMonth;
    /**
     * 色号
     */
    @Length(max=20,  groups ={AddGroup.class, UpdateGroup.class}, message="色号长度不能超过20个字符")
    private String colorNumber;
    /**
     * 商品等级:1-优等品-excell;2-一等品-first
     */
    private Integer itemGrade;
    /**
     * 包装码
     */
    private String cfpackCode;
    /**
     * 缺陷
     */
    private  String fault;
    /**
     * 生产调度号schedule_no
     */
    private  String scheduleNo;
    /**
     * 批次flot
     */
    private  String flot;
    /**
     * 尺寸item_size
     */
    private  String itemSize;
    /**
     * 外包装码名称boxing_name
     */
    private  String boxingName;
}
